﻿Imports PTIC_Util
Imports OMANE.moteurTauxGaranti1

Public Class Controleur

#Region "Variables globales"
    Protected _univers As UniversOMANE
    Protected _controleListeParametres As IListControleursParametres
    Protected _controleTraitements As IControleTraitements
#End Region

#Region "Création d'une instance"
    Public Sub New(ByVal universOMANE As UniversOMANE, _
                   ByVal controleurListeParametres As IListControleursParametres, _
                   ByVal controleurTraitements As IControleTraitements)
        _univers = universOMANE
        _controleListeParametres = controleurListeParametres
        _controleTraitements = New baseControleTraitements(_univers)
    End Sub
#End Region

#Region "Propriétés"
    Public ReadOnly Property controleListeParametres() As IListControleursParametres
        Get
            Return _controleListeParametres
        End Get
    End Property
    Public ReadOnly Property controleTraitements() As IControleTraitements
        Get
            Return _controleTraitements
        End Get
    End Property
#End Region

#Region "Paramétrage méthode de calcul"
    Public Function setMethodeCalcul(ByVal numMethode As Integer) As Boolean
        _univers.numMethodeCalculEnCours = numMethode
        Return True
    End Function
#End Region

    Public Function refreshStatistiques() As Boolean

    End Function

    Public Function executeCalculsModele1() As PTIC_Util.resultatValidationContraintes

        'Contrôle des paramètres de l'étude
        Dim result As resultatValidationContraintes
        result = controleListeParametres.isListeParametresValide()

        If Not result.isValide Then
            MsgBox("Le scénario central de la méthode 1 ne peut pas être exécuté car : " & vbCrLf & vbCrLf & result.msg)
        Else
            Dim moteurCalcul As Moteur_Methode1
            moteurCalcul = _univers.listeTraitements.getTraitMoteurMethode1()
            moteurCalcul.listeParametres = _univers.ListeParametres
            moteurCalcul.init_tbles_travail()
            moteurCalcul.calculerScenarioCentral()
        End If
        Return result

    End Function

    Public Function executeSimulationsModele1() As Moteur_Methode1
        Dim moteurCalcul As Moteur_Methode1= _univers.listeTraitements.getTraitMoteurMethode1()
        moteurCalcul.calculerSimulations()
        Return moteurCalcul
    End Function

End Class
